﻿Public Class frmLoaiNha

    Private lnBUS As LoaiNhaBUS
    Private lnDTO As LoaiNhaDTO
    Private cm As CurrencyManager
    Private flagIsUp As Boolean
    Private Sub frmLoaiNha_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        LoadData()
    End Sub

    Private Sub LoadData()
        dgvLoaiNha.ClearSelection()
        lnBUS = New LoaiNhaBUS
        Dim lnList = New List(Of LoaiNhaDTO)
        lnList = lnBUS.GetData()
        cm = Me.BindingContext(lnList)
        txtmaLoainha.DataBindings.Add("Text", lnList, "MaLoaiNha")
        txttenloainah.DataBindings.Add("Text", lnList, "TenLoaiNha")
        dgvLoaiNha.DataSource = lnList
    End Sub

    Private Sub LockTextbox(ByVal f As Boolean)
        txtmaLoainha.Enabled = f
        txttenloainah.Enabled = f

        If f = False Then
            txtmaLoainha.BackColor = Color.LemonChiffon
            txttenloainah.BackColor = Color.LemonChiffon

        Else
            txtmaLoainha.BackColor = Color.White
            txttenloainah.BackColor = Color.White

        End If
    End Sub
    Private Sub LockButton(ByVal dt As Boolean)
        btnThem.Enabled = dt
        btnSua.Enabled = dt
        btnXoa.Enabled = dt
        btnLuu.Enabled = Not dt
        btnThoat.Enabled = dt
    End Sub

    Private Sub btnThem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThem.Click
        flagIsUp = True
        LockTextbox(True)
        LockButton(False)
        ClearTextbox()
        dgvLoaiNha.Enabled = False
        txtmaLoainha.Focus()
    End Sub
    Private Sub ClearTextbox()
        txtmaLoainha.Text = ""
        txttenloainah.Text = ""

    End Sub

    Private Sub btnXoa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXoa.Click
        Dim cmnd As String = txtmaLoainha.Text
        Dim qs = MsgBox("Bạn chắc chắn muốn xóa tất cả thông tin về:" _
                        & vbCrLf & vbCrLf & " - Mã Loại Nhà: " & txtmaLoainha.Text _
                        & vbCrLf & vbCrLf & " - Tên Loại Nhà: " & txttenloainah.Text, _
                        vbInformation + vbYesNo, "Thông báo")
        If qs = vbYes Then
            lnDTO = New LoaiNhaDTO(cmnd)
            lnBUS = New LoaiNhaBUS()
            lnBUS.XoaLoaiNha(lnDTO)
            ClearBinding()
            LoadData()
            LockTextbox(False)
            LockButton(True)
            dgvLoaiNha.Enabled = True
            MsgBox("Dữ liệu đã xóa thành công", vbInformation, "Thông báo")
        Else
            MsgBox("Đã hủy thao tác xóa!", vbExclamation, "Thông báo")
        End If
    End Sub
    Private Sub ClearBinding()
        txtmaLoainha.DataBindings.Clear()
        txttenloainah.DataBindings.Clear()


    End Sub

    Private Sub btnSua_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSua.Click
        flagIsUp = False
        LockTextbox(True)
        LockButton(False)
        dgvLoaiNha.Enabled = False
        txtmaLoainha.Focus()
    End Sub

    Private Sub btnLuu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLuu.Click
        Dim matienich As String = txtmaLoainha.Text
        Dim ndtienich As String = txttenloainah.Text

        '---------------------------------------------
        If TestInfo() Then
            lnDTO = New LoaiNhaDTO(matienich, ndtienich)
            lnBUS = New LoaiNhaBUS()
            lnBUS.CapNhat(lnDTO, flagIsUp)
            ClearBinding()
            LoadData()
            LockTextbox(False)
            LockButton(True)
            dgvLoaiNha.Enabled = True
            MsgBox("Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
        End If
    End Sub

    Private Function TestInfo() As Boolean
        TestInfo = True
        If Trim(txtmaLoainha.Text) = "" Then
            TestInfo = False
            MsgBox("Mã Loại Nhà không được bỏ trống!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
            txtmaLoainha.Focus()
            Exit Function
        ElseIf Trim(txttenloainah.Text) = "" Then
            TestInfo = False
            MsgBox("Tên Loại Nhà không được bỏ trống!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
            txttenloainah.Focus()
            Exit Function

        End If
    End Function

    Private Sub btnHuy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHuy.Click
        ClearBinding()
        LoadData()
        LockTextbox(False)
        LockButton(True)
        dgvLoaiNha.Enabled = True
    End Sub

    Private Sub btnThoat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThoat.Click
        Me.Close()
    End Sub
End Class